using System;
using System.Threading.Tasks;
using Abp.Application.Services;
using Abp.Application.Services.Dto;
using Dyan.PlatformSystem.Customers.Dtos;
using Dyan.PlatformSystem.Dto;

namespace Dyan.PlatformSystem.Customers
{
    public interface ICustomerAccountsAppService : IApplicationService 
    {
        Task<PagedResultDto<GetCustomerAccountForViewDto>> GetAll(GetAllCustomerAccountsInput input);

        Task<GetCustomerAccountForViewDto> GetCustomerAccountForView(Guid id);

		Task<GetCustomerAccountForEditOutput> GetCustomerAccountForEdit(EntityDto<Guid> input);

		Task CreateOrEdit(CreateOrEditCustomerAccountDto input);

		Task Delete(EntityDto<Guid> input);

		Task<FileDto> GetCustomerAccountsToExcel(GetAllCustomerAccountsForExcelInput input);
    }
}